﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public class UsuarioRelatorio {

    public int idUsuario{ get; set; }
    public string nome { get; set; }
    public decimal totalComprado { get; set; }
    public int quantidadeItensComprados { get; set; }

}

public partial class Administrador_Relatorio_Outros_melhorCliente : System.Web.UI.Page {

    PetShopService.Relatorio relatorio = new PetShopService.Relatorio();
    PetShopService.UsuarioServicos oUsuarioServicos = new PetShopService.UsuarioServicos();

    protected void Page_Load(object sender, EventArgs e) {

        if (!oUsuarioServicos.isUsuarioAdministrador())
            Response.Redirect("~/default.aspx");



    }
    protected void btnPesquisar_Click(object sender, EventArgs e) {
        DateTime dtInicial = Convert.ToDateTime(TxtDataInicial.Text);
        DateTime dtFinal = Convert.ToDateTime(TxtDataFinal.Text);
        List<UsuarioRelatorio> listaUsuarioRelatorio = new List<UsuarioRelatorio>();
        List<PetShopService.Pedido> pedidos = relatorio.RetornaPedidos(dtInicial, dtFinal);
        foreach (PetShopService.Pedido pedido in pedidos) {
            UsuarioRelatorio usuario = new UsuarioRelatorio();

            if (listaUsuarioRelatorio.Count(u => u.idUsuario == pedido.idUsuario) == 0) {
                usuario.idUsuario = pedido.idUsuario;
                usuario.nome = oUsuarioServicos.RetornaUsuario(pedido.idUsuario).nome;
                usuario.totalComprado = pedido.valorTotal;
                usuario.quantidadeItensComprados = pedido.ItensPedidos.Sum(i => i.Quantidade);
                listaUsuarioRelatorio.Add(usuario);
            }
            else {
                usuario = listaUsuarioRelatorio.SingleOrDefault(u => u.idUsuario == pedido.idUsuario);
                usuario.totalComprado += pedido.valorTotal;
                usuario.quantidadeItensComprados += pedido.ItensPedidos.Sum(i => i.Quantidade);
            }
        }

        gvMelhoresClientes.DataSource = listaUsuarioRelatorio;
        gvMelhoresClientes.DataBind();
    }
}
